Selection compression

ABSTRACT

A method of generating a compressed video stream, comprising: providing a plurality of display commands which represents a display; generating a plurality of quantized transform coefficients from said display commands, wherein said quantization is different for different display commands; and creating a compressed video stream utilization said coefficients.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/364,159, filed Feb. 1, 2012, now U.S. Pat. No. 9,008,172, issued onApr. 14, 2015, which is a continuation of U.S. patent application Ser.No. 11/401,703, filed Apr. 11, 2006, now U.S. Pat. No. 8,189,662, issuedon May 29, 2012, which is a continuation of U.S. patent application Ser.No. 09/744,662, filed Apr. 27, 2001, now U.S. Pat. No. 7,103,099, issuedon Sep. 5, 2006, which is a continuation-in-part of PCT Application No.PCT/IL98/00349, filed Jul. 27, 1998, and designating the U.S., thedisclosures of which are incorporated herein by reference. Thisapplication also incorporates herein by reference PCT Application No.PCT/IL99/00413, titled “SELECTIVE COMPRESSION,” filed in the PCT via theIsrael Receiving Office on Jul. 27, 1999.

BACKGROUND

Various methods of remotely accessing a computing server have been usedin the past. One of the first methods utilized a server and terminals.Input is entered at the terminals, transmitted to the server and theresults are send back over data lines to the terminals. The terminalscan be “dumb” terminals, such as a VT52, with no processing power exceptto display the data, or they can be smart terminals, such as an IBM3270, which can do some basic form filling without requiringintervention of the server.

As computing power has grown cheaper, various other strategies have beenused. In the XII graphical networking protocol, a display server sendsbitmaps to a display client and receives input events from the client.In the NeWS graphical networking protocol, a server sends short codesegments to a client computer the code segments perform display andinput handling functions at the client and, when needed, send input to-and receive display data from the server.

A somewhat different type of remote computer access is Internet-TV. Atelevision set is upgraded using an electronic box so that thetelevision may be used to access the Internet. In one system, Internetrelated data is transmitted to and from the electronic box usingprotocols which transmit data over a cable network. In some instances,the data is transmitted using a data channel provided by an MPEGcompression protocol. In one system, the box is a computer, whichperforms the Internet communication via the cable network and which usesthe television as a display. In another system, a server at a cablecenter, sends graphical display commands to the box and the boxgenerates a video signal responsive to the commands. Typically, thedisplay commands are a subset of Java or HTML. In another system, thedata comprises Java scripts which are executed by the box.

Cable networks have also long been used to send video and/or audioprograms on demand to a particular subscriber. The video programs arecompressed before sending so that a wider bandwidth is available overthe cable networks. A set-top box at each subscriber is hardwired(and/or programmed) to decompress the video program and convert it intoa video signal for the television. Such video on demand may be a liveperformance or may be retrieved from an archive. It is also possible toview video segments via the Internet.

Generally, when video is transmitted, a same band width is allocated toa plurality of video channels. In packet based video transmission,subscribers and/or channels that require a higher data rate receive morepackets per second than subscribers who need a lower data rate. Acompany named “iMedia” uses a method of statistical multiplexing inwhich bandwidth is dynamically allocated between video channels, basedon signal characteristics of the video being transmitted. The allocationdoes not depend on the content per-se of the video channels. In fact,the statistical multiplexing is preferably affected withoutdecompressing the images.

Related patent publications include U.S. Pat. Nos. 5,612,742, 5,687,257and 5,115,309 and PCT publication WO 97/12486, the disclosure of whichare incorporated herein by reference. The following articles, “PolygonAssisted JPEG and MPEG Compression of Synthetic Images”, by Marc Levay,Proceeding of Siggraph 1995, “Model Based Motion Estimation forSynthetic Animations”, by Maneesh Agrawala, Andrew C. Beers and NavinChaddha, in ACM Multimedia 1995, and “Compression Performance of theXremote Protocol”, by John Danskin and Pat Hanrahan, Proceedings 1994Data Compression Conference, the disclosures of which are incorporatedherein by reference, describe methods compressing animation into MPEGformat, on a single machine. In these methods the compression is fastersince the “video source”, the animation, is completely known.

SUMMARY

One object of some embodiments of the present invention is to provide aclient-server protocol which operates via a cable network. Preferable,the server is used to connect to the Internet. Preferably, the clientcomprises a television and a set-top box.

An object of some preferred embodiments of the invention is to providemethods of more efficiently compressing video, which video is generatedby a computer.

An object of some preferred embodiments of the invention is to providemethods of bandwidth allocation for cable-network systems where the datatransmitted relates to computer communications. Preferably, the computercommunications comprise compressed screen displays.

One aspect of some preferred embodiments of the present inventionrelates to providing remote computer access using compressed video.Preferably, one or more clients are connected to a single server using acable network. Preferably, displays are sent from the server to theclients using compressed video, preferably using an MPEG II compressionprotocol. Preferably, the clients provide feedback to the server usingdata transmission over the cable network. Alternatively, the feedbackmay be provided over a telephone line.

Another aspect of some preferred embodiments of the invention relates toefficient video compression, especially MPEG II compression, of computergenerated displays. Efficient compression may be faster, of a higherquality and/or be obtained using a cheaper hardware and/or softwarebase. In one preferred embodiment of the invention, such efficientcompression is achieved by bypassing motion estimation algorithms. Suchbypassing may be achieved by taking note of display manipulationcommands and tracking which portions of a display are changed and whichare shifted. Display manipulation commands include, for example,scrolling commands and pan commands.

Alternatively or additionally, efficient compression is achieved bymaintaining the compression of video, audio and/or still images whichare retrieved by the server and sent to the client, instead ofdecompressing them and then compressing them again prior to sendingthem.

Alternatively or additionally, efficient compression is achieved bymodifying a display, which would have been used for a user working onthe server, so that it can be more efficiently compressed.

Alternatively or additionally, efficient compression is achieved bydirect drawing of graphical elements of a display into a DCT space,instead of- or in addition to drawing into an image space and thenperforming a transform.

Alternatively or additionally, efficient compression is achieved byreusing portions of a display and/or a DCT space, between images and/orbetween clients.

An aspect of some preferred embodiments of the invention relates todifferential compression of different parts of the computer display. Ina preferred embodiment of the invention, portions of the display whichrequire better visual acuity for comfortable viewing and/orunderstanding, are compressed at a lower bit-per-pixel ratio and/orother variations of compression parameters, so that they have a betterperceived image quality. A particular example is text, which ispreferably compressed with more bits for the higher frequencies thangraphics.

Another aspect of some preferred embodiments of the invention relates toimage processing an image and/or a video stream. In a preferredembodiment of the invention, image processing of an image is combinedwith a compression stage by providing an image, compressing the imageand image processing the image by manipulation of compression parametersand/or by processing of the compressed data. It should be appreciatedthat it would have been possible to process the image beforecompressing. However, in some cases, the image processing is morecomputational efficient by processing the compressed data. In apreferred embodiment of the invention, an image is low-pass filtered byreducing the quantization rate of low frequency components. In apreferred embodiment of the invention, only the vertical frequencycomponents are modified, to reduce flicker in a reconstructed image. Inanother example a different wavelet resolution is used in a verticaldirection of an image.

Another aspect of some preferred embodiments of the invention relates toasynchronic image compression and transmission. In a preferredembodiment of the invention, an image or an image portion is compressedin an asynchronic manner, for example, depending on available bandwidth,available computational power, indication of changes in the image,desirable image quality and/or type of change in the image. In apreferred embodiment of the invention, the display rate and/or the imagegenerate rate are unaffected by the asynchronic characteristics of thedata compression.

In a preferred embodiment of the invention, a compression step isprompted by an event which marks a change in the image. In a preferredembodiment of the invention, only the portions of the image which areaffected by the event are compressed. A new image frame is created andsent to a decompression and display unit. Such a new image frame maycomprise a completely new frame or a frame which defines changes overone or more previous frames. In a preferred embodiment of the invention,two change events may be combined in a single new frame. In some cases,one change event may moot a previous change event, so that only thechanges associate with one event are processed.

In a preferred embodiment of the invention, the system may operate atseveral different frame rates simultaneously: image generation framerate, actual compression frame rate, maximum compression frame rate anddisplay frame rate. In a preferred embodiment of the invention, each ofthese frame rates may be independently varied, for example, the imagegeneration rate may depend on a computer program which generates theimage. The actual compression rate may depend on available computingpower and/or on whether there were any changes in the frame. The maximumcompression rate may be the maximum frame rate which is allocated for aparticular user and may depend on a user request, available bandwidthand/or payment schedule. The display rate may depend on thecharacteristics of the display device, be it NTSC, PAL or HDTV. In apreferred embodiment of the invention, the actual compression rate andthe display rate are synchronized by buffering the actually sent frameswith “no change” frames, to maintain the display frame rate constant. Ina preferred embodiment of the invention, the maximum frame ratedetermines the number of frames sent, with the balance between themaximum frame rate and the compression frame rate also being bufferedusing “no change” frames.

Alternatively or additionally, the MPEG decompression module may bemodified to work with variable frame rates.

Another aspect of some preferred embodiments of the invention relates tobandwidth allocation between a plurality of clients. In accordance withone preferred embodiment of the invention, the compression depth istraded-off between the clients. Preferably, each client is provided witha minimum bandwidth according to his needs.

Alternatively or additionally, bandwidth is allocated by providing eachclient with a different frame rate. Typically, a 25/30 HZ (changed)frame rate is not needed in any computer application, so that a lowerframe rate may generally be used for such applications.

Alternatively or additionally the bandwidth is allocated responsive tothe amount of motion in the display for each client.

Another aspect of some preferred embodiments of the invention relates toadjusting the displayed information to match a particular compressionrequired and/or display characteristics of a television used to displaythe data. In one example, a cursor flashing rate may be changed so thata lower frame rate is required. In another example, the colors of adisplayed portion are adjusted so that compression of color componentsis more efficient. In still another example, display elements, such asbullets and letters are moved so that they do not straddlecompression-block boundaries. In another example, a display backgroundmay be replaced by a different display background, for example tosimplify compression or to utilize a pre-compressed background.Preferably, the background is compared to a set of stored backgroundportions to determine which background is most similar. In a preferredembodiment of the invention, if all the pre-stored backgrounds aredifferent by more than a threshold amount, the original background maybe used. Alternatively or additionally, the original background may bemodified to simplify compression. In a preferred embodiment of theinvention, a background is analyzed to determine if it is unique andshould not be replaced. Such an analysis may include, inter alia,analyzing the size of the background image, analyzing the contrastand/or analyzing the colors of the image. Generally, a garish, largeand/or high-contrast background is a unique background. Plain, simpleand low-contrast backgrounds are generally “standard” and replaceablebackgrounds. Preferably, when determining which background to replacethe original background with, a plurality of parameters of the originalbackground are used to select a match. Such parameters can include maincolor (a replacement background can be set to that color), spatialfrequency spectrum (a background with a similar spectrum can beselected) and size (a background with a similar size and/or aspectration may be selected). Alternatively or additionally, other displayelements, such as icons, buttons, menus and fonts may also be replacedand/or modified in similar ways to a background.

Another aspect of some preferred embodiments of the invention relates togenerating a plurality of content-unrelated compressed video streamsfrom a single computer. In some preferred embodiments of the invention,such a single computer may include a plurality of processing units,sharing resources, such as memory and/or a main data bus. In a preferredembodiment of the invention, when a resource is not needed for thegeneration of one channel, that resource may be used by a secondchannel. In a preferred embodiment of the invention, at least some ofthe processing associated with the generation of both channels isperformed on a single CPO. Preferably, a single computer generatesdisplays for 4, 10 or even 20 channels, Le.,

Another aspect of some preferred embodiments of the invention relates toa virtual device driver for an operating system, so that a plurality offull size windows may be displayed simultaneously on the virtual device,by a host computer. Preferably, each one of the full-size displays isconverted into a separate and content-unrelated video stream. In apreferred embodiment of the invention, each window runs an instance ofan Internet browser. In a preferred embodiment of the invention, theborder and/or other portions of the browser are not shown. Alternativelyor additionally, a control area may be optionally provided by server 16.Preferably, such a control area is overlaid on the display.

Another aspect of some preferred embodiments of the invention relates tobroadcasting compressed video data packets representing a plurality ofdisplay channels, where some packets may be used for more than onechannel. In one example, a packet including data corresponding to a menuportion of a web browser is utilized and decompressed by all the viewerswhich view that particular browser. In another example, when a pluralityof viewers view a same TV or WWW channel, a temporal and/or spatialadvertisement portion of the channel may be personalized for aparticular viewer or for a group of users. The decompression unit ateach different user or group or users preferably accepts differentpackets and thus may show different advertisements, on the same channel.

Another aspect of some preferred embodiments of the invention relates totreating WWW sites, radio stations, video on demand, cable channels andTV channels as different instances of multi-media presentation channels.In a preferred embodiment of the invention, some WWW sites, such as CNN,Microsoft and the local weather are set up as permanent channels. Insome preferred embodiments of the invention the interactivity of achannel may be reduced in order to allow more channels in a givenbandwidth.

In a preferred embodiment of the invention, such channels may beswitched between and viewed on a single display device, such as a TV ora computer display. Alternatively or additionally, links may be definedbetween portions of such channels and portions of other such channels.Preferably, a user may follow such links to switch between channels.Alternatively or additionally, a user may view a plurality of suchchannels simultaneously and/or in an overlay. In a preferred embodimentof the invention, linking from a TV channel is enabled by an overlaywhich indicates which portions of the channel include links and/or wheresuch links point. In a preferred embodiment of the invention, such linksmay be dynamic and/or track portions of the image. An audio channel or aTV channel may include an associated visual display of links and/or mayinclude voice annotations informing of links. In a preferred embodimentof the invention, a link may be selected by a voice command. In apreferred embodiment of the invention, the links are personalized tomatch a particular viewer.

In a preferred embodiment of the invention, a web site may be used tobrowse TV channels. When a particular link on the web site is followed,a corresponding TV channel may be displayed. In a preferred embodimentof the invention, a cable operator may provide a WWW interface tobrowsing a TV channel catalog and especially a video-on-demand catalog.

In a preferred embodiment of the invention, advertisements in themultimedia channels are treated in aggregate. Thus, advertisements maybe personalized for a particular viewer, depending on the user, for allthe different types of multimedia channel. Generation of advertisements,tracking of user viewing and selection of advertisements shown may beeffected using a single system, albeit possibly with differentaccounting for the different types of channels.

There is thus provided in accordance with a preferred embodiment of theinvention, a method of generating a compressed video stream, comprising:

providing a plurality of display commands which represents a display;

generating a plurality of quantized transform coefficients from saiddisplay commands, wherein said quantization is different for differentdisplay commands; and

creating a compressed video stream utilizing said coefficients.Preferably, said generating comprises looking up coefficients in atable. Alternatively or additionally, said generating comprisescalculating coefficients.

In a preferred embodiment of the invention, the method comprisesdetermining a display requirement and wherein said quantization isresponsive to said determination. Alternatively or additionally, saidcoefficients are generated quantized.

Alternatively, said coefficients are generated unquantized andcomprising quantizing said generated coefficients. Preferably, saidcoefficients are quantized separately for different commands.Alternatively or additionally, said coefficients are quantizedseparately for different image blocks. Alternatively, said coefficientsfor an entire image are quantized together.

In a preferred embodiment of the invention, said quantization isresponsive to a desired bandwidth of said stream. Alternatively oradditionally, said quantization is responsive to a desired quality ofsaid stream. Alternatively or additionally, said coefficients arequantized differently responsive to an identification of the commandtype.

In a preferred embodiment of the invention, said coefficients arequantized differently responsive to a display content generated by saidcommand. Alternatively or additionally, said coefficients are quantizeddifferently responsive to a spatial effect of said command.Alternatively or additionally, said coefficients are quantizeddifferently, responsive to a frequency to which said coefficientcorresponds. Alternatively or additionally, said commands are providedand coefficients generated sequentially for individual commands.

Alternatively, said commands are provided and coefficients generated ona block-by-block basis. Alternatively, said commands are provided andcoefficients generated on a frame-by-frame basis.

In a preferred embodiment of the invention, the method comprises varyingsaid generation between corresponding commands on consecutive frames.Preferably, said varying comprises generating a different effectiverefresh rate for different commands.

In a preferred embodiment of the invention, the method comprisespreprocessing at least one of said commands prior to said generation.Preferably, said preprocessing interacts with said generation to requireachieving a lower bit-rate for said command. Alternatively oradditionally, said preprocessing interacts with said generation tocounteract visibility reducing effects of said generation. Alternativelyor additionally, said preprocessing interacts with said generation toincrease a visibility of an effect of a command.

In a preferred embodiment of the invention, providing said displaycommands comprises providing a plurality of sets of display commands,each corresponding to a different compressed stream. Preferably, a samedisplay command is compressed differently for the different sets.

In a preferred embodiment of the invention, said plurality of displaycommands corresponds to an Internet browser display. Alternatively oradditionally, creating said compressed video stream comprises creating astream including both an effect of said commands and at least a portionof an additionally provided compressed video stream. Alternatively oradditionally, a text display command is quantizer using a finerquantization than a graphics command.

There is also provided in accordance with a preferred embodiment of theinvention, a method of generating a compressed video stream, comprising:

providing a plurality of display commands which represents a display;

setting at least one compression parameter to different values fordifferent ones of said display commands; and

creating a compressed video stream from said commands utilizing said atleast one compression parameter. Preferably, said at least onecompression parameter comprises a spatial quantization parameter.Alternatively or additionally, said at least one compression parametercomprises a refresh rate. Alternatively or additionally, said at leastone compression parameter comprises a spectral quantization parameter.Alternatively or additionally, said at least one compression parametercomprises an intensity quantization parameter.

In a preferred embodiment of the invention, the method comprisesbroadcasting said generated video stream to a plurality of users, usinga compressed video transport stream.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be more clearly understood by reference to thefollowing description of preferred embodiments thereof in conjunctionwith the figures, wherein identical structures, elements or parts whichappear in more than one figure are labeled with the same numeral in allthe figures in which they appear, in which:

FIG. 1 schematically illustrates a client/server configuration, inaccordance with a preferred embodiment of the invention;

FIG. 2 schematically illustrates a server, in accordance with apreferred embodiment of the invention;

FIG. 3 is a flowchart for a method of generating a compressed videostream, in accordance with a preferred embodiment of the invention;

FIG. 4 is a schematic diagram of a cable operator configuration, inaccordance with a preferred embodiment of the invention; and

FIG. 5 is a flowchart of a method of differentially compressing displayelements, in accordance with a preferred embodiment of the invention.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 1 schematically illustrates a client/server configuration 10, inaccordance with a preferred embodiment of the invention. A server 16communicates with a client 11, using a compressed video signal.Typically, a single server 16 is connected to and services a largenumber of clients 11. Client 11 comprises a video display, preferably atelevision set 12 (TV). The compressed video signal is preferablyreceived by a set-top box 14 which decompresses the compressed signaland sends a video signal to TV 12. In a preferred embodiment of theinvention, set-top box 14 is also used for viewing cable channels and/orpay-per-view programs.

In a preferred embodiment of the invention, client 11 includes inputdevices 20, preferably a mouse and/or a key-board. Alternatively, aremote-control with a small number of buttons is used for input. Inputdevices 20 may be connected to server 16 via a cable uplink connection,such as through set-top box 14. Such connections are well known in theart and may be used for transmitting small amounts of information backto a cable server. One such connection is defined by Liberate Inc., andprovided by Scientific Atlanta Inc. Alternatively or additionally, theconnection may be via a telephone connection 22. In a preferredembodiment of the invention, user information, such as images and e-mailletters are faxed to server 16.

In a preferred embodiment of the invention, input devices 20 arewireless, such as infrared or ultrasonic, and set-top box 14 ortelephone connection 22 include a suitable detector.

In some preferred embodiments of the invention, client 11 may comprise acomputer 24 which can perform both the decompression and the display.Alternatively or additionally, the compressed video stream is used tocarry data, preferably on a data channel of the compression protocol, tocomputer 24, from server 16. Such data communications may additionallyor alternatively lead from computer 24 directly to server 16.Alternatively or additionally, input devices of computer 24, such as amouse, may be used as an input device 20.

In one preferred embodiment of the invention, a direct computer/serverconnection is used to upload files to server 16 for transmissionelsewhere and/or for downloading data files from the Internet.

In a preferred embodiment of the invention, server 16 is connected to anInternet 18 and client 11 is used to browse the Internet. Alternatively,server 16 may run other programs, such as a word processor, aspread-sheet or a computer game. In a preferred embodiment of theinvention, the program executed by server 16 is a program which managesa subscriber's interaction with the cable company. In another preferredembodiment of the invention, the program is an e-mail program.

In one preferred embodiment of the invention, a program executed onserver 16 may be used to browse data stored at server 16, for exampleDVD multimedia. In a preferred embodiment of the invention, server 16maintains a copy of information which is often downloaded from theInternet, so that it can be simply and quickly browsed. Such informationpreferably includes, games, images, on-line journals and/or and datawhich is often downloaded and/or downloaded by more than a certainnumber of users.

FIG. 2 schematically illustrates a server 16, in accordance with apreferred embodiment of the invention. A program 30 is run at server 16and generates a display to be viewed. This display is preferably drawnin a window on a virtual display 32. The window portion of display 32 iscompressed, preferably to comply with the MPEG II standard. Thiscompression may be performed by a standard MPEG II compressor. However,in a preferred embodiment of the invention, a special MPEG compressionalgorithm is used which take into account the type of display beinggenerated.

It should be appreciated that although an MPEG II compression is assumedin many of the examples described herein, the invention is not limitedto being used with MPEG II compression. Rather, many other compressionmechanisms may be used, including advanced versions of MPEG, Quick time,wavelet compression, A VI and propriety compression protocols used bysome multimedia data compressors.

The compressed display is then preferably physically encoded using atransport encoder 36 and mixed into an output video stream using amixing box 38. User input is preferably filtered out by mixing box 38and then directed to program 30, in a manner which emulates naturalkeyboard and/or mouse input to the program. Alternatively oradditionally, especially when a special input device 20 is used, forexample a remote, a special device driver in server 16 converts the userinput into a format which can be assimilated by program 30.

In a preferred embodiment of the invention, server 16 runs a pluralityof programs 30′, the displays of which are all compressed, encoded andmixed into a cable wire signal. Preferably, the plurality of programsall run on a single CPU. Alternatively or additionally, server 16 maycomprise a multi-CPU platform. Preferably, all the programs share asingle virtual display. Alternatively, at least some of the programs mayutilize a separate virtual display. Preferably, MPEG compressionprocesses for a plurality of programs are performed by the same CPU.Alternatively, server 16 may include a plurality of DSP cards, which canbe dynamically assigned to perform the compression. Preferably, all thecompressed displays are transport encoded using a single transportencoder, alternatively a plurality of encoders may be used. Preferably,such a plurality of encoders are dynamically assigned for a displayframe. Preferably, the encoders are genlocked and/or frame locked.

In a preferred embodiment of the invention, the various programsindependently utilize system resources of server 16. In some cases, anoperating system, such as windows NT or UNIX may support multiple userson a single system. Alternatively or additionally, server 16 may includesoftware which captures operating system requests from the differentprograms 30 and then handles the requests in a manner which istransparent to the programs. One example of such a resource is cursorposition. Another example is copy and paste commands in which a separatecut-buffer is preferably maintained for each program and/or user, sothat copy and paste commands on different programs do not interact.

In a preferred embodiment of the invention, an overlay generator 40 isused to add an overlay to virtual display 32. Such an overlay may beused, for example, to add a cursor. Alternatively or additionally, theoverlay is used to add user specific information which is not known bythe program but which is tracked by server 16, for example connectiontime.

In a preferred embodiment of the invention, overlay generator 40 and/orother elements of server 16 may be used to add an overlay to a TVprogram channel, especially a compressed channel. Such an overlay mayinclude WWW pages, program outputs, links and/or dynamic and/or staticdisplays.

In a preferred embodiment of the invention, each program 30 has assignedto it also a virtual audio card, for outputting sounds generated byprogram 30. Alternatively or additionally, each program 30 has assignedto it a virtual video card. Preferably, the video output of the card aredisplayed in a window on the display. Preferably, the inputs and/oroutputs utilized by program 30 are also managed as virtual devices, forexample a virtual mouse and/or keyboard. In a preferred embodiment ofthe invention, additional virtual input and/or output devices may beassociated with each program. One example of such a device is a modem,for a user downloading information to program 30. Another example is avoice input channel, preferably with speech recognition. Preferably, thevirtual devices are assigned from a pool, on a demand basis.Alternatively or additionally, a single virtual device is used for aplurality of programs and the device driver is operative to individuallyservice a plurality of programs so that there is no undesiredinteraction between the programs.

In a preferred embodiment of the invention, a portion of virtual display32 may be viewed on server 16, for monitoring purposes. Alternatively oradditionally, such a portion may be viewed from a remote location,preferably, by a remote system manager. Alternatively or additionally, aplurality of displays for individual programs may be displayedsimultaneously, preferably with each one being reduced in size and witha plurality of program windows being displayed on a single monitor. In apreferred embodiment of the invention, server 16 is operative to recordaudio, displays and/or inputs for a particular program or for aplurality of programs. Such recording is preferably initiated by asystem manager or by a user of the program. Preferably, an indication ofsuch initiation is made directly to server 16 and bypassing program 30.

In a preferred embodiment of the invention, server 16 is connected to aprinter and/or video or audio recording devices, such as a DVD.Preferably, a user can print text or graphics and/or record amulti-media segment using these devices and the hard copy is preferablymailed and/or otherwise delivered to the user.

In some preferred embodiments of the invention, mixing box 38 is used toconnect to different types of networks, in addition to or instead of acable network. In one preferred embodiment of the invention, mixing box38 is used to connect to a telephone line. Preferably, a single datachannel is transmitted over a plurality of lines. Alternatively,compression algorithms adapted for telephone lines may be used.Alternatively or additionally, an ISDN line may be used.

Preferably, set-top box 14 is modified so that it can also connect tothe same type of network that mixing box 38 is connected to.Alternatively an additional adapter box is used to adapt from onenetwork to the other.

In a preferred embodiment of the invention, a computer is directlyconnected to the network instead of through a set-top box. In onepreferred embodiment of the invention, a LAN or a WAN is used to connectserver 16 and the computer. Preferably, the compressed video data istransmitted as data packets over the network.

FIG. 3 is a flowchart for a method of generating a compressed videostream, in accordance with a preferred embodiment of the invention. Thisflowchart is preferably repeated (50) for each display element, where adisplay element is a graphical primitive or object which is drawn byprogram 30 or by the operating system. Alternatively, an entire displayis built and then compressed. Alternatively the display is processed ona block-by block basis and each display element is a block or a portionthereof. Preferably, the block size is 8×8, 16×16 pixels or anothermultiple of the MPEG block size. It should be appreciated that differentparts of the flowchart may be applied with a different granularity. Forexample, some of the flowchart may be performed on a frame-by-framebasis, while other parts may be performed on a block-by-block,super-block-by-super-block or element-by-element basis.

In a preferred embodiment of the invention, all the steps of theflowchart are performed. However, in other preferred embodiments of theinvention, fewer than all the steps may be performed, for example evenonly a single step may be performed.

If the display element is an encoded object (52), for example compressedvideo or audio, the compressed data is preferably transcribed (54) intothe MPEG stream, rather than decompressing and re-compressing it. Whenthe object is displayed on the virtual display using a WWW browser, aspecial viewer is provided for this type of multimedia object so thatthe data is transcribed to the MPEG stream instead of beingdecompressed, “displayed” and recompressed. When the object is displayedusing the operating system of server 16, a similar transcription isperformed. In a preferred embodiment of the invention, the resolution ofthe transcribed stream may also be controlled, for example, byre-quantizing OCT coefficients in MPEG and JPEG data. Preferably, theresolution is controlled to match bandwidth restrictions and/or qualityrestrictions.

Different transcriptions are preferably used for different types ofcompression, since the type and amount of reusable data is dependent onthe type of compression. For JPEG compressed images, the OCTcoefficients may be reused. Once the image is transmitted once, it doesnot change, so only motion vectors are required to describe it in futureframes. MPEG compressed streams may be simply copied. Some types ofvideo compression do not use the DCT transform but do contain motionestimation parameters which are reusable by the MPEG compressionprocess. The MPEG standard supports several types of audio, which typescan be simply copied from the input to the MPEG stream. Alternatively oradditionally, to compressed streams, other types of encoded data may betranscribed, for example, the encoded data may contain. displaycommands, which may be directly converted to compressed video, withoutrendering the commands, as described herein.

In a preferred embodiment of the invention, the display is adjusted forthe TV display (56) and/or to make the compression more efficient (58).These two types of adjustments may interact, however, for simplicity ofdescription they are described separately. ATV display has severalcharacteristics which not as good as and/or different from a computerdisplay, including, resolution, frame rate, CRT scanning path, flickerproblems, aspect ratio, viewing distance color resolution andinterlacing. The lower resolution typically requires increasing a fontsize used or using a more-readable font than required for a computerdisplay. Flicker problems are typically caused by thin horizontal lines,which are preferably replaced by thick horizontal lines. Alternativelyor additionally, low pass filtering is applied to the image, at least inthe vertical dimension. In a preferred embodiment of the invention, sucha low pass filtering is applied by reducing the quantization of thevertical frequency coefficients, after the image is transformed, atleast of the high frequencies. It should be appreciated that filteringin a DCT space is not multiplication. However, such filtering may beapproximated by multiplication. Preferably however, a look-up table isused to perform filtering. Most preferably, the filtering is performedduring the quantization, preferably embodied in the quantization look-uptable.

The aspect ratio difference is preferably solved by pixel interpolation.The increased viewing distance for TV is preferably adjusted for byincreasing the font size. The color resolution of a TV per-se may be thesame as a computer display. However, both the MPEG II standard and mostTV transmission standards utilize a lower spatial resolution for color.Preferably, display elements which depend on color resolution for theirdiscernability are enlarged and/or the colors used changed. In apreferred embodiment of the invention, the display is modified so thatit is suitable for vision-challenged individuals. Preferably, suchmodification is personalized to the visual abilities of a particularuser, which abilities may be associated with the user or which abilitiesmay be entered by the user.

There is preferably a two-way interaction between computer generateddisplays and MPEG compression. The MPEG compression affects how thedisplay will look and the content of the display affects the efficiencyand speed of the MPEG compression. First, some types of displayselements require many more bits to compress than other types. Second,some types of display elements are degraded to a greater amount thanother elements, by a same amount of compression. Third, some types ofdisplay elements are easier/faster to compress than others. In apreferred embodiment of the invention, display elements are modified sothat they look better, are easier to use and/or faster to compress thanthe original display elements. Some examples include, manipulatingcolors so that the color components can be compressed to a greaterdegree; moving elements, such as bullets, so that they do not straddleblock boundaries; using fonts with fewer high-frequency components;reducing flashing rates of colors and cursors and/or synchronizing themwith each other and/or other display changes; reducing animation ratesof animated objects; low-pass filtering, to reduce display resolution;and/or reducing scrolling resolution, for example to be limited toblocks and/or super-blocks, so that motion estimation only involvesmoving of whole blocks. In a preferred embodiment of the invention, ascrolling below a certain resolution is not shown and/or is rounded upto a nearest number of pixels divisible by 8.

In a preferred embodiment of the invention, color manipulation and/orother types of image adjustment, except possibly for aspect ratiocorrection, are not performed on multimedia segments which aredownloaded from the Internet.

Preferably, some or all of these adjustments are performed by changingsettings of program 30 and/or of the operating system. However, in somecases, these adjustments may be simpler to perform as a post-processingstep during the display compression (58).

In a preferred embodiment of the invention, motion estimation isperformed utilizing a knowledge of the structure and/or build-up of thedisplay, instead of or in addition to analyzing consecutive frames ofthe display (60). Preferably, this knowledge is gleaned from thegraphics commands generated by program 30. Alternatively oradditionally, especially in an Internet browsing embodiment, thisknowledge is gleaned from HTML, Java or JavaScript commands downloadedfrom the Internet. Similarly, changes in a display which are describedbelow as being performed by modifying display commands, may also beperformed by modifying HTML files, possibly in a pre-processor to thebrowser.

In a preferred embodiment of the invention, special note is taken ofscrolling commands, which define a motion vector for portions of thedisplay. Text based displays usually involve a significant amount ofscrolling. Even graphics based displays may contain a significant amountof scrolling, since the display is often only a window into a largeunderlying data space. Preferably, very large motion vectors areallowed, for example as long as 200 pixel long. Typically, the vectorswill comprise integer numbers of pixels in the X and Y axis components.It should be appreciated that there are several types of “scrolling”type commands, including:

(a) scrolling of a portion of the display when a user enters text in aword processor;

(b) scrolling of a scrollable display element;

(c) moving a window and/or a display element on the display;

(d) horizontal and/or vertical motions of blocks of image information;and/or

(e) scrolling of an entire horizontal or vertical swath of a screen orof the entire screen.

In a particular example, when a WWW page is being downloaded, portionsof the display are moved around as new images and their sizes aredownloaded. In a preferred embodiment of the invention, portions of thedisplay are moved using scrolling-type commands, so that only motionvectors need to be transmitted by the compression mechanism. In apreferred embodiment of the invention, some of the data may be scrolledto or from outside of the viewing area. Preferably, scrolled out datamay be retained by the MPEG decompressor, for use when such data “moves”back into the displayed area.

In addition, determining motion vectors by image analysis can generallybe performed more efficiently in most computer generated displays thanin acquired image streams. When a section of a computer generateddisplay moves, it is usually copied, so a perfect correspondence betweenthe source and the destination can be expected and searched for. In apreferred embodiment of the invention, the computer program is limitedto movements of units of 8 or some other number, preferably integer, sothat motion estimation is faster and/or does not required pixelinterpolation. Alternatively or additionally, the virtual device drivertranslates scrolling commands into units which are divisible by 8.

In a preferred embodiment of the invention, changes are detected byfocusing on pixels which were rendered and or on areas on which displaycommands operated (62).

In a preferred embodiment of the invention, graphical elements are drawndirectly (64) into a transform space, such as a DCT space or a wavelettransform space, instead of first being drawn and then transformed. Somegraphical elements can be reused (their DCT coefficients reused), forexample, window borders, standard buttons, bullets, letters, icons,menus and/or some images. Graphical elements can be reused betweendownloaded web pages, between programs, between users and/or betweendifferent frames of the same program. Preferably, a cache of DCTtransformed web pages is stored in addition to or instead of a cache ofHTML files. In addition, basic graphical elements can be drawn directlyas DCT coefficients, for example, pixels, line, combinations ofprimitives and transformed primitives (zoom, rotate).

In some cases there is a simple analytic formula connecting the originalDCT coefficients and the transformed ones, for example in rotations,zoom by an integer number and decimation by an integer factor. When twoprimitives are both drawn in the same block, the coefficients are added.In a preferred embodiment of the invention, the coefficients arelinearly added. Alternatively or additionally, the adding takes intoaccount the quantization and is preferably performed using a look-uptable. In a preferred embodiment of the invention, when the primitivesoverlap, they are split into non-overlapping portions and overlappingportions. The non-overlapping portions are simply drawn. The drawing ofthe overlapping portions depends on the type of interaction (such asbitblt command) between the two primitives. In some cases, a sum or anaverage of their DCT coefficients generates a good graphicalrepresentation.

Alternatively or additionally, other processing may be performed on DCTcoefficients, prior to them being drawn into said DCT space, forexample, rotation, quantization, smoothing and/or thresholding.

In a preferred embodiment of the invention, the DCT coefficients forsome primitives are calculated on-the-fly, using analytical formulae. Inone example, a single pixel, DCT coefficients for a pixel at a location(xO, yO) in a compression block yields the following DCT coefficientvalue for coefficients (k, i): cos(2nxO*(k+0.5)/8)cos(2nyO(i+O.5)/8). Aline is preferably drawn as a series of pixels, each of which may be“rendered” using the above formula. Preferably, a line is first dividedinto line segments, each of which is included in a single compressionblock.

Alternatively or additionally, the DCT coefficients for basic objectsare stored in tables, corresponding to positions of the object withinthe block. Preferably, display elements are modified so that they matcha table entry and/or an analytic transformation is used to modify them.It should be appreciated that in some preferred embodiments of theinvention, standard display portions, such as borders and menus changerarely on the display, so that they are only infrequently compressedand/or retrieved from an appropriate lookup table.

In a preferred embodiment of the invention, display elements are movedso that they do not straddle compression blocks. Alternatively, or whenthe element is larger than a block, the element may be split betweenblocks. Alternatively or additionally, a look-up table storescoefficients for a 16×16 block. Alternatively or additionally, the 16×16coefficients are calculated from 8×8 coefficients, by interpolation.

It should be appreciated that methods for direct drawing of elementsinto the DCT space and/or other transform spaces, for other compressionmethods, are generally suitable for parallel implementation, as thedifferent coefficients can be set independent of each other. Up to thisstage, the transformation, as described, is generally loss-less,although lossy transformation (compression) methods and/or thresholdscan be applied even at these early stages. Information compression ispreferably achieved by quantization of the DCT coefficients. It shouldbe appreciated that in many implementation, the transform step isintegrated with the quantization step, so there may be no separatingline between transformation and compression. In a preferred embodimentof the invention, a compression depth which requires lossy compressionis determined (66). Preferably, the depth of compression is determinedresponsive to external requirements (67), such as available bandwidth orothers, described below. Alternatively or additionally, the amount oflossy compression desired for the current display is outputted to anexternal environment, preferably as part of a negotiation for bandwidth.The desired compression depth may be dependent on the type of datadisplayed or on other parameters, described below.

Additionally or alternatively to determining the compression depth, theframe rate of the display is reduced to below a video rate (68).

In a preferred embodiment of the invention, a plurality of modifiableparameters are available for trading off image quality and bandwidth.Each of these parameters may have a range in which the image quality isminimally degraded and a range where the quality is significantlydegraded. In addition, different parameters may have different effectsfor different images types. For example, the frame rate is not veryimportant when viewing text, but it is very important when playing acomputer game. The parameters which can be modified preferably includeone or more of:

(a) frame rate;

(b) DCT coefficient sampling resolution;

(c) a motion estimation threshold, below which no motion is detected;

(d) a change estimation threshold;

(e) allowances for modifying the positions of objects, for moreefficient compression;

(f) allowance for modifying the appearance of objects;

(g) color modifications;

(h) reduced resolution in imported multimedia objects, such as MPEGmovies;

(i) accuracy of direct DCT drawing tables and transformations;

(j) different parameter values per portion of the display, per displayelement and/or graphical primitive; and/or

(k) a desired image quality.

In a preferred embodiment of the invention, different parameters havedifferent levels of importance, depending, inter alia, on what is beingviewed. Preferably, each program, TV set, user and/or combinationsthereof are associated with a particular set of desired values for theseparameters and their relative importance and/or minimal and/or maximalvalues. Preferably, these parameters are associated with a set-top boxdigital subscriber number.

Additionally or alternatively, different values of compressionparameters may be defined for different parts of the display, forexample, standard icons and menu bars may be compressed to a lowerquality than unknown icons, since they are more easily recognized.

Additionally or alternatively, the compression and/or bandwidthrequirements are dependent on a prediction of the future frames. In oneexample, if a JPEG image is being downloaded and displayed, lessbandwidth will be required for a particular display portion than if anMPEG video is being downloaded and displayed.

In a preferred embodiment of the invention, the compression is performedusing a variable-bit rate, while requiring a constant quality threshold.The quality threshold may be changed as a function of availablebandwidth, as described above.

In a preferred embodiment of the invention, the compressed video signalmay include two types of compressed data. For example, an MPEG portionand an A VI portion. However, this may require additional capabilitiesfor the set-top box.

In a preferred embodiment of the invention, programming of the set-topbox is updated from server 16. This updating is preferably performedwhile the TV is not in use. Preferably, the selection of the compressionparameters is a function of the TV type (standard, digital or HDTV), itssize and/or the capabilities of the set-top box with regard to itsspeed, programmability and memory. Preferably, more complex and/orefficient compression schemes are used for more sophisticated set-topboxes.

Although the above embodiments have been described generally withreference to MPEG compression, it should be appreciated that they may beapplied for many types of compression practiced today, especiallytransform-quantize type compression methods. Non-MPEG compression typesare also important when the display is not a two-dimensional rasterdisplay, for example, when the display is a three-dimensional rasterdisplay.

In a preferred embodiment of the invention, the method explained withreference to FIG. 3 is performed responsive to change events, whichindicate to the image compressor that a change has occurred in an imageof a display channel. Step 62, “change detection” is preferably utilizedto determine if the change warrants an update to the image, based on,for example, the available bandwidth, available computing power and/ortype of user connection. In a preferred embodiment of the invention,only the changed portion of the image is processed and a new outputframe is assembled from the newly compressed image portions and,possibly, existing, unchanged compressed image portions. In a preferredembodiment of the invention, three kinds of frames may be generated:

(a) “I” frames, which include a complete image;

(b) “P” frames, which define changes over a previous image; and/or

(c) “N” frames which indicate that no changes are to be made.

As can be appreciated, it is desirable to minimize usage ofcomputational resources as well as bandwidth resources. On the otherhand, it is desirable to provide a fast feedback to at least some userinteractions. Alternatively or additionally, it is desirable to maintaina fixed frame rate at the display unit. Alternatively or additionally,the MPEG decompressor may be modified to allow variable frame-rates.

In a preferred embodiment of the invention, the compression-displayprocess is asynchronous, so that each part of the pipeline, e.g., imagegeneration, compression, transmission and decompression-display, may beseparately optimized and/or otherwise controlled.

In a preferred embodiment of the invention, the decompression-display ismaintained at a fixed frame rate by buffering “I” and “P” type frameswith “N” type frames, to maintain a desired frame rate. In a preferredembodiment of the invention, the “N” type frames are evenly distributedin the video stream. In a preferred embodiment of the invention, thedistribution of “N” frames is used to effect a statistical multiplexingof “new” frames between a plurality of channels.

In a preferred embodiment of the invention, the compression isasynchronic, generating new compressed data only when a change hasoccurred in the image. This allows the image generating program to runat screen-update rates, possibly unrelated to the compression framerate. Alternatively or additionally, at least some of the imagegeneration-display process is synchronized, for example, by bufferingthe communications between differently synchronized portions of theimage generation, compression and display system. In one example, changeevents may be queued and then processed (to effect image compression) atthe desired frame rate. Alternatively or additionally, the compressionand/or transmission portions may control the image generating program,for example to slow down and/or provide only certain types of output. Inone example, the operating system may reduce the CPU slicewidth of aprogram that is generating output too fast.

Alternatively or additionally, change events may be asynchronouslyqueued and/or delayed. In a preferred embodiment of the invention, suchdelaying is performed which there are momentary limitations on computingpower and/or on transmission bandwidth. In a preferred embodiment of theinvention, two or more change events may be combined so that only asingle portion of an image is compressed. In one example, two scrollcommands can be combined into a single “scroll” event. Alternatively oradditionally, some types of change events may be discarded, for examplebased on a threshold and/or on an image quality requirement.

Alternatively or additionally, when an image portion is compressed,generation of frames may be delayed, responsive to limitations incomputing power and/or bandwidth. In some cases, some image portions maybe delayed long enough that a newer version of the portion overridesthem. Alternatively or additionally, such delays and queuing incompression and frame generation are responsive to a desirablecompression-output frame rate.

In a preferred embodiment of the invention, motion and/or changeinformation is provided as “side” information to the compressionprocess. Such side information may be generated by the program, byanalyzing the commands sent to the virtual display driver and/or byanalyzing the results of the display commands.

In a preferred embodiment of the invention, different compression levelsand/or other parameters are organized in sets. A particular set ispreferably selected based on the available bandwidth, computingresources and/or other factors which are described herein as affectingthe compression.

In a preferred embodiment of the invention, even when the frame rate islow, certain portions of the display may be updated at a faster rate,for example, to provide feedback for a mouse action, mouse motion and/orkeyboard entry. This may be achieved by sending MPEG frames in which theonly blocks changed are those for which feedback is required. In apreferred embodiment of the invention, the user input channel is fastand asynchronic, so that it is not delayed by frame-rate considerations.

In a preferred embodiment of the invention, different change events havedifferent priorities and may therefore “pass” queued and/or delayedevents, in the image generation display pipeline. For example a changeevent related to a response to a user input, e.g. cursor motion, mayhave a higher priority that a system status display. More than twopriority levels may be defined. In a preferred embodiment of theinvention, each priority level may have associated therewith a “framerate” at which change events and/or other processing associated with theevent are handled. Alternatively or additionally, each priority levelmay have other information associated therewith, for example, alloweddelay time and/or error correction level.

In a preferred embodiment of the invention, blocks associated with highpriority levels of change events may be automatically determined evenwithout an indication from the program. In one example, such changes aredetected by capturing “windows” commands, such as cursor movement andshading of menus.

FIG. 4 is a schematic diagram of a cable operator configuration 80, inaccordance with a preferred embodiment of the invention. In a typicalcable distribution network, bandwidth must be allocated between manyservices, including one or more of a plurality of viewing channels 84, aplurality of pay-per-view movies 88, data downloading from remotesources 90, telephone and video-conferencing services 86 and audiochannels 82. Additionally, not shown are bandwidth requirements for datatraveling from subscribers to cable operator 80. In a preferredembodiment of the invention, this last bandwidth is also shared with oneor more servers 16, which provide remote computer access to subscribers.Preferably, a controller 92 assigns bandwidth portions to different onesof the services. The video and/or data streams from the services arepreferably mixed using a mixing box 94 and distributed using a cabledistribution network 96. Although FIG. 4 generally describes acentralized system, in some preferred embodiments of the invention, theconfiguration is distributed. For example, a plurality of servers may beprovided with each one serving a small locality. At need, a local servermay be utilized to server a more remote location. In a preferredembodiment of the invention, the cable operator has a centralizedconnection to the Internet and Internet data is transmitted using acable data connection from the Internet connection to a server 16 whichrequires it. Alternatively, a plurality of such Internet connections maybe provided.

In a preferred embodiment of the invention, a certain amount ofbandwidth is assigned by the cable provider for use of server 16.Preferably, controller 92 trades-off between the various services and/orbetween the bandwidth requirements of different servers. Preferably, theavailable bandwidth for each client/server channel is constantlychanging to reflect the instantaneous availability of bandwidth and/orthe needs of the various services. In a preferred embodiment of theinvention, a statistical multiplexing of bandwidth is performed betweenthe channels so that the average available bandwidth for each channel isas desired. This allows a momentary higher bandwidth for a particularchannel, if required. Alternatively or additionally, this allowsasynchronic transmission of the different channels.

In a preferred embodiment of the invention, the relative bandwidthsassignments for each user of servers 16 are adjusted. In accordance withone preferred embodiment of the invention, the bandwidth is assignedbetween users so that a same compression depth is achieved for each one.Alternatively or additionally, the bandwidth is divided up so that aconstant quality measure is achieved for each user. The quality for eachuser may be defined using quality measures well known in the art.Alternatively or additionally, the quality measures may be dependent onthe compression parameters sets described above, which define whichcompression parameters may be degraded, to what extent and/or whatconsequence is allowable. Alternatively or additionally, bandwidth isdivided up so that a moving-window average of bandwidth is the same foreach user.

In a preferred embodiment of the invention, some users receive morebandwidth than other users and/or are more likely to retain theirbandwidth in case of bandwidth shortage. Preferably, users can order acertain minimal and/or average bandwidth ahead of time. Alternatively, auser can require a certain minimal and/or average frame rate and/or amaximal and/or average image degradation.

It should be appreciated that different computer displays requiredifferent amounts of bandwidth, for example, static text displaysrequire less bandwidth than graphical animation. Preferably, an averagebandwidth is achieved by statistically assigning more bandwidth forcomplex displays and less bandwidth for simple displays.

Additionally or alternatively, the average bandwidth requirements forparticular programs and/or WWW sites may be stored so that the requiredbandwidth may be better estimated.

Alternatively or additionally, programs which generate displays may beslowed down so that the bandwidth required is lower. In one example,downloading of information is slowed so that it is displayed slower. Inanother example, a computer game is slowed down and/or its frame refreshrate lowered and/or its image definition reduced so that its bandwidthrequirements are lower. One way of reducing image definition is byproviding a virtual display with a reduced resolution and/or drawingwith a reduced resolution.

In a preferred embodiment of the invention, TY programming, especiallyvideo-on-demand programming, but possibly also other types of TYchannels, include hints for statistical multiplexing. These hints mayinclude an indication of the content of a frame or frames of video.Alternatively or additionally, it may indicate a required bandwidth.Alternatively or additionally, it may indicate an allowed qualityreduction. Thus, when two such channels are statistically multiplexed,for example, as performed in an “iMedia” system, the multiplexing cantake into account the content of the channels and not only theirstatistical properties. Such hints may be transmitted on a data channel.Alternatively or additionally, these hints may be provided with a storedTV programming sequence. Alternatively or additionally, the hints maycomprise hints for advertisement insertion, for example, an indicationof a portion of a frame which may be replaced by an advertisement. Thesedisplay portions may be replaced with compressed video advertisements,without decompressing the source channel, for example by replacingcompressed image blocks.

It should be appreciated that by controlling the compression and/or theprograms and/or the downloading of data, very fine control overbandwidth, image quality and/or tradeoff between them may be achieved,with a fast response time.

In a preferred embodiment of the invention, subscribers are charged forutilizing servers 16 and the bandwidth used on cable distributionnetwork 96. Such billing may be a function of several charge methods,including one or more of the following and/or combinations thereof:

(a) per hour usage of server 16 and/or network 96 and/or Internetconnection;

(b) per CPU second of server 16;

(c) per second of time for MPEG compression;

(d) flat fee;

(e) per MPEG byte transmitted to user;

(f) per data byte downloaded from the Internet;

(g) per storage at server 16;

(h) different rates for different programs used, per usage time or perusage time and/or count of these programs;

(i) per hardcopy generated, possibly including cost of mailing and/ormessenger to the user;

(j) per data transmitted from the user to server 16;

(k) advertisement level, where cable TV charges may be lower if a higherAdvertisement level is allowed; and

(l) incentive payments, for example based on the actual advertisementsviewed. In addition, the actual rate may be a function of one or moreof:

(a) the quality of data transmitted and/or the amount of modification ofthe data;

(b) limitations imposed by a user on the bandwidth or the quality;

(c) relative availability of the bandwidth; and/or

(d) variations in actual bandwidth.

In a preferred embodiment of the invention, the accounting for cableservices and server 16 services are combined. In a preferred embodimentof the invention, the usage of specific programs is tracked in order topay royalties to the program provider and/or copyright owner.

In a preferred embodiment of the invention, advertisements are mixedinto the compressed video stream.

In a preferred embodiment of the invention, advertisements are added tothe compressed video stream which is sent to the client. The use ofadvertisements may offset some of the cost of providing the serviceand/or may provide an additional income source for the cable provider.In a preferred embodiment of the invention, advertisements are added tothe video stream in a manner which will minimally affect using program30 and/or browsing the Internet.

In one preferred embodiment of the invention, advertisements aredisplayed while waiting for an image or file to load and/or while aprogram is busy calculating. Alternatively or additionally,advertisements are displayed when server 16 is too busy to run program30.

Alternatively or additionally, advertisements are added to thebackground of a display, for example underlying text. The background maybe automatically detected either by its color or by the drawing commandused to draw it, typically, a large single color rectangle.

Alternatively or additionally, advertisements are placed in unusedportions of the screen, for example, large blank spaces. Preferably, theadvertisements are moved and/or resized and/or clipped to reflectchanges in the usage of the screen. In one preferred embodiment of theinvention, an advertisement is minimized to an icon, which a user canopen at will. Opening such an icon may create an overlay an underlayand/or other changes in the display, in addition to or instead ofopening a window with the advertisement.

Alternatively or additionally, advertisements are non-rectangular.Preferably, an advertisement is selected to fit the size, shape and/oraspect ratio of an available area. Alternatively to selecting theadvertisement, an existing advertisement may be modified so that itmeets time or space constraints. Preferably, advertisements are insertedinto areas of the display into which images and/or video is beingdownloaded from the Internet.

Alternatively or additionally, an advertisement may be used to replacescreen elements which are drawn by the operating system of server 16 orby a standard program thereon. For example, an advertisement (static orlive) may be used to replace the cursor, an icon and/or a per-programdefined section of the screen.

In a preferred embodiment of the invention, a program and/or a WWWbrowsing session may be modified using a suite of advertisements. In anexample of a soft-drink company, the cursor is replaced with a bottleicon, loading images are replaced (during loading) with well knownadvertisements and system messages are replaced with messages whichinclude a soft-drink related content.

In a preferred embodiment of the invention advertisements and/orprograms have associated with them scripts which define whereadvertisements can be inserted. The scripts are preferably written in aninterpreted language, such as Visual Basic.

In a preferred embodiment of the invention, the advertisements areinserted in a different sensing modality from what is used by a user.for example, if the user is using a visual display, audio advertisementsmay be used, and vice versa. In particular, when a program is generating(only) a sound track, a visual advertisement may be displayed.

In a preferred embodiment of the invention, server 16 automaticallydetects the activation of a screen-saver mode and replaces the screensaver or a portion of it with an advertisement. Alternatively oradditionally, an advertisement may be displayed and/or sounded if theprogram is not in use or no user input is detected for a certain amountof time.

In a preferred embodiment of the invention, an artificial pause in theusage of program 30 is inserted (for the advertiser) and anadvertisement is displayed on all or part of the display. Preferably,certain times in the execution of program 30 are defined as being lessamenable to being interrupted. In one example, advertisement breaks areinserted if a user stops typing for a certain amount of time, after hetypes a period or after he performs a save operation (in a wordprocessor). In another example, advertisement breaks are added to abrowsing section when a new page is entered and a considerable amount ofdata is to be unloaded.

In a preferred embodiment of the invention, an advertisement may bestopped or artificially shortened, when a user starts entering input orwhen an image download is complete. Preferably, preferred ending pointsand/or sections to be skipped are defined for the advertisement, so thatthe break is clean.

In a preferred embodiment of the invention, the expected duration oftime during which an advertisement can be displayed and/or the size ofarea and changes in the size may be determined responsive to theactivities which are being performed by the user. In one example, thetime to download an image download can be estimated. This estimation maybe used to select an advertisement which is just the right length or toselect a plurality of consecutive advertisements. If the download ratechanges, the advertisement may be shortened, lengthened or replaced,accordingly.

In a preferred embodiment of the invention, the user can indicate toserver 16, preferably bypassing program 30, annotations for particularadvertisements. In particular, a user can indicate to the server anadvertisement which he wishes to view again, an advertisement which hefind offensive and or to indicate a general level of advertisementcontent which is acceptable (or example for parental control purposes).Additionally or alternatively, a user can provide feedback to anadvertisement. In one example, a user can browse a WWW site associatewith the advertisement. In another example, a user can place a telephonecall or a video conference call, through the cable network to a locationassociated with the advertisement. Various types of advertisements maybe used, including:

(a) static images;

(b) animation by a slowly changing image sequence;

(c) animation using a graphical program run at the server;

(d) silent video;

(e) audio; and

(f) video with sounds.

In a preferred embodiment of the invention, the advertisement includes apre-defined frame rate, which may change over the duration of theadvertisement.

In a preferred embodiment of the invention, the advertisements arepre-compressed. Alternatively or additionally, the advertisements areDCT transformed and/or motion compensated, but not quantized.Preferably, the quantization is determined in the fly, as part of thebandwidth considerations. Alternatively or additionally, the frame rateand/or size and/or shape are determined on the fly. In a preferredembodiment of the invention, the advertisement has associated with it“bandwidth suggestions”, which are certain sets of compressionparameters which define a local optimum in the tradeoff of bandwidth andviewing quality. Such definitions may be per portion of theadvertisement.

It should be appreciated that the bandwidth which is devoted for theadvertisement is not generally of interest to a user. In a preferredembodiment of the invention, the above described bandwidth optimizationsand trade-offs are performed independently of any advertisement content.Preferably, portions of the image in which an advertisement will beplaced are treated as portions which do not need to be transmitted.

In a preferred embodiment of the invention, the advertisement ispurposely selected, preferably by server 16. Alternatively oradditionally to a selection responsive to bandwidth and timeconsiderations, such selection may be responsive to one or more of:

(a) WWW page content;

(b) a particular program being executed by a user and/or a particularaction therein;

(c) demographics and/or other information associated with a user;

(d) statistical definitions of exposure to the advertisements;

(e) a desired temporal and/or modal distribution of a particularadvertisement or product;

(f) language; and/or

(g) local geographical considerations, for example, local advertising.

In a preferred embodiment of the invention, a certain exposure of a userto advertisements and/or advertisement display rate may be desired.Preferably, when the rate is lower than desired, advertisements areinserted more often and/or longer advertisements are used.

In a preferred embodiment of the invention, a downloaded WWW pageincludes an indication of what advertisements to insert and where. Theadvertisements themselves are preferably stored locally at server 16 orelsewhere at cable operator 80. In a preferred embodiment of theinvention, programs run at server 16 also have advertisements associatedtherewith, for example with certain actions and/or forms. In a preferredembodiment of the invention, the advertisement indications refer to aproduct or a group of products to be advertised. Alternatively oradditionally, the indications are associated with an advertisementdistributor.

In a preferred embodiment of the invention, server 16 downloads a fileswhich contains up-to-date associations between advertisement indicationsand advertisements. In a preferred embodiment of the invention, theactual advertisements shown, their duration, their quality, anassociation with what the subscriber was doing at the time and/or a userresponse to an advertisement, are transmitted to an advertisementdistributor so that royalty payments and/or payments to the cablecompany, can be determined.

In a preferred embodiment of the invention, advertisements are added toa WWW page by the portion of the browser which is supposed to displaycertain objects, such as A VI files. Preferably, the browser portiondisplays advertisements from a local storage while waiting for data todownload so that the browser can display the real data.

In a preferred embodiment of the invention, other content, besidesadvertisement can be mixed with the display of program 30, using methodsas described for advertisements. In a preferred embodiment of theinvention, the content comprises TV channels, especially news and sportschannels. This type of mixing is especially useful if the display ofprogram 30 is relatively static.

In a preferred embodiment of the invention, advertisements arepersonalized, for content, at server 16 and/or the cable provider. In apreferred embodiment of the invention, such personalization may also beeffected for non-Internet TV channels, for programs run at server 16(such as a word processor) and/or for games. Thus, using any multi-mediachannel at a server 16 may require a user to view personalizedadvertisements. In another example, a software may require constantconnection to the Internet in order to operate properly and/or in orderto limit pirating of the program. Detection of the connection may beused for billing purposes and/or for sending personalized advertisementsto be displayed by the program, even if the Internet connection does notutilize a configuration as described above.

In a preferred embodiment of the invention, each subscriber is assigneda private directory into which he can download information and storepersonal files. Preferably, the client is charged per space used. In apreferred embodiment of the invention, a user can download programs fromthe Internet or from home, into server 16 and run them at server 16.Preferably, such programs are run in a protected mode of the operatingsystem so that they do not interfere with other programs. Alternativelyor additionally, such programs are run on a separate server 16 from Webbrowsers.

In a preferred embodiment of the invention, a set-top box will onlyreceive a channel if it matches a subscriber number of the set-top box.Alternatively or additionally, especially for channels viewable bymultiple users, a channel may have associated therewith a plurality ofsubscribers numbers and/or a pattern which defines who may view thechannel. In a preferred embodiment of the invention, the display isencrypted, such that only designated recipients may view it.

In a preferred embodiment of the invention, a password is hardwired intoa set-top box. Alternatively or additionally, a password is entered by auser when logging unto server 16, for example for entering the Internet,at which point all transmission to the user may be encrypted responsiveto the password. Alternatively or additionally, the password may be usedfor charging a user, so that a user may connect from different set-topboxes.

Alternatively or additionally, the system assigns a password to a userwhen he connects, based on the content the user is viewing. In oneexample a single password may be provided to a plurality of usersviewing a same channel. Alternatively or additionally, each user and/orchannel may be assigned a different password.

In a preferred embodiment of the invention, cable operator 80 comprisesa plurality of computers, each suitable to run one or more programs 30.These computers may be organized in different servers 16. Alternativelyor additionally, a plurality of computers may be included in a singleserver. In one preferred embodiment of the invention, different user'sprograms are run on different computers, depending on the relative loadon the computers and/or the expected processing power required forcompression and/or the expected processing power required by aparticular program 30. In a preferred embodiment of the invention, auser can “rent” a particular computer for a certain amount of time to bewholly or partly dedicated to his needs. Alternatively or additionally,different programs 30 are run on different computers, for example,browsers are run on one computer and interactive games are run on adifferent computer.

In one preferred embodiment of the invention, a program is run on afirst computer and the conversion of display command to compressed videois performed on a different computer. Preferably, this is achieved usinga network windows operating system, such as XII, whereby the displaycommands for XII are sent to the different computer to be convertedthere to an MPEG stream.

Alternatively or additionally, programs 30 may be moved betweencomputers, preferably in a manner transparent to the end-user. In apreferred embodiment of the invention, each computer has a backupcomputer running the same programs, so that if the first computercrashes, the execution of the programs may be passed, preferablyseamlessly, to the second computer. Alternatively or additionally, thecomputers share one or more storage disks. Alternatively oradditionally, the distribution of programs 30 on the backup computers isdifferent than on the live computers, so that the probability of a crashrepeating itself and/or affecting the same programs 30, is reduced.

As can be appreciated, it is not generally desired that individualprograms 30 are aware of other programs 30 being executed on the sameserver by a different subscriber. In addition, it is not usuallydesirable that a program 30 be aware of the transmission of the displayby compressed video.

In an alternative preferred embodiment of the invention, program 30 isaware of the display and/or input situation. Preferably, such a programmodifies its output and/or processing responsive to what is happening onthe server and/or responsive to requests from the server. Preferably,program 30 is written for or adapted for a remote access configurationas described herein.

In a preferred embodiment of the invention, the execution of a programis affected by the display of the program results. In one example, whenthe display bandwidth is reduced, the rate at which displays aregenerated is also reduced. Alternatively, the display is slowed down.For example, if the display is paused, the program may also be paused.The opposite situation is also possible, if a program requires lessdisplay bandwidth, it may be allotted a higher share of the executiontime. Alternatively to adjusting the execution rate to meet the displaybandwidth requirements, the display bandwidth requirements may beadjusted to meet execution rate requirements. Alternatively oradditionally, a program 30 may be slowed down if not enough CPU isavailable for it. Preferably, the relative ranking between programs withregard to display bandwidth and/or CPU availability is a property of theprogram which a subscriber can adjust and/or where he is billed forincreased availability.

In a preferred embodiment of the invention, a user can perform remotecross-platform application execution, using methods described herein. Aremote program is attached to a virtual display and input device, thedisplay is provided to the user as described hereinabove and the user'sinput is provided to the remote location as described hereinabove.Preferably, the display for the remote program is shown as a window onthe user's computer. Alternatively or additionally, the location of apointing device, such as a mouse cursor, overlaid on the compressedvideo image is translated into a location relative to the remoteprogram's window, prior to transmission thereto of the location.

In some preferred embodiments of the invention, two subscribers areallowed to interact via the interactions of their respective programs.Alternatively or additionally, a single subscriber may execute more thanone program simultaneously on server 16, and be able to switch betweenthem and/or pass data between them and/or allow them to otherwiseinteract, for example as provided in the Windows95 and/or Unix operatingsystems.

In one preferred embodiment of the invention, group games and/or groupsimulations are allowed in which a plurality of players interact. In onepreferred embodiment of the invention, group games are run on a singlecomputer which generates a plurality of display streams. Typically, anetwork connection will need to be simulated between such game programs.Alternatively, each program is run on a different computer at cableoperator 80, which computers are connected by a LAN. In Internet groupgames, an Internet is preferably simulated between the games, instead ofactually passing all the interactions through the Internet.

In a preferred embodiment of the invention, one subscriber can monitorthe operation at one or more other subscribers, preferably by havingtheir compressed video stream incorporated into his video stream. In onepreferred embodiment of the invention, such monitoring is part of a helpdesk operation, so that a help desk operator can see exactly what asubscriber, with a problem, is seeing. Preferably, the helpdesk operatorhas the option of taking over the operation of a mouse and/or keyboardof program, overriding the subscriber. Alternatively or additionally,simultaneous input from both helpdesk operator and subscriber isallowed.

In a preferred embodiment of the invention, interactive tutoring may beperformed. Since both the tutor's and the student's programs are runningon the same computer or a networked computer, communication between themis simplified and response time may be shortened. Alternatively oradditionally, a display of the user may be transmitted, in full size, inreduced size or clipped to the tutor, so he can monitor the student moreclosely. Preferably, the display is clipped relative to the mouse.Preferably, a plurality of clipped areas are transmitted. Alternativelyor additionally to transmitting the student display, the tutor displaymay be transmitted. If a camera is available at the tutor and/or thestudent, a camera feed may also be transmitted between them.

In a preferred embodiment of the invention, a user can generate aplurality of display channels. The plurality of channels may begenerated by multiple windows of a single program, by multiple programsor by defining different parts of a single display to be outputted indifferent channels. Such separate channels may overlap in the virtualdisplay space. Preferably, the user switches between the viewing themultiple channels. Alternatively or additionally, the user views two ormore channels simultaneously.

In a preferred embodiment of the invention, a user and/or the cableoperator generate a channel to be viewed specifically by other users.Preferably, a plurality of users can view the channel simultaneously.Preferably, at most one of the other users, if any, may provide input tothe channel. Alternatively, when more than one additional user views thechannel and/or provides input, the program which generates the channelis duplicated for each channel. Preferably, the program comprises anunduplicated portion and a duplicated portion, so that a considerableamount of memory, CPU time and/or disk storage space may be saved. In apreferred embodiment of the invention, the program which generates thechannel is not run and/or is paused while there are no subscribersconnected to the channel.

Alternatively, the program is run but the display is not compressedand/or not transmitted over distribution network 96. Alternatively oradditionally, the program is run at a reduced rate and/or the display iscompressed to a higher degree. In a preferred embodiment of theinvention, program 30 generates its display based on other data channelsin the cable network system. For example, program 30 can generate achannel which comprises a portion of a sports channel and a portion of anews channel, text downloaded from a WWW site and a calculated graph.

In a preferred embodiment of the invention, program 30 generates stereovideo streams. In a preferred embodiment of the invention, a compressionmethod which allows the transmission of stereo pairs is used.Alternatively, two video streams are generated. Preferably, the twostereo streams are synchronized with respect to their frame rate, imagequality and/or relative phase. Preferably, the set-top box is capable ofdecompressing two video streams simultaneously. In a preferredembodiment of the invention, where a TV that is capable of tuning to twoor more channels at a time is utilized, such two or more channels areprovided by the set-top box. Multiple channels may also be used totransmit news, such as sport news on a secondary channel and/or totransmit advertisements.

In addition, there are other circumstances in which two or more displaychannels, generated by a single user or generated by different users aresynchronized, for example if two such channels are viewed by a singleuser.

In a preferred embodiment of the invention, a single packet may belongto two or more channels. In one example, a packet may include data for aframe of a “Windows 95” window, which data is useful for many channels.In another example, a plurality of data channels may utilize a same “I”frame but at least some different “P” frames. By allowing overlapbetween packets, it is possible to provide a large number ofpersonalized WWW pages, using a limited bandwidth. One example of asituation in which such overlap is useful is in a satellite WWWbroadcast system, in which a satellite communication system having alimited bandwidth is used to provide cable/Internet/remote computingservices to a plurality of subscribers. Another example is a microwave,coax or optical cable network, especially for a large area. Anotherexample is a wireless transmission system, such as used for TVbroadcasting.

In a preferred embodiment of the invention, a plurality of displaychannels are assigned for remote computer access. The assignment may befixed or it may be variable, for example, depending on the availabilityof bandwidth and user requests for different types of multimediachannels. In a preferred embodiment of the invention, the assignment ofWWW sites to channels is fixed. Alternatively or additionally, at leastsome of the assignments may change, for example by need (for example asis described below) or based on popular request and/or schedulingconsiderations.

It should be appreciated that there are many WWW sites that are view insubstantially the same manner by a large number of people, for example,a news site. Such a site could be assigned a single channel. However,when a user follow a link from the site or scrolls the display, thatuser cannot force all the other users to scroll with him. In many caseshowever, only a small number of people will be scrolling at any givenmoment. In addition, the difference between what is being viewed bydifferent subscribers may be limited to personalized advertisementsand/or other personalizations of the WWW page. Thus, transmitting “P”frames containing only the changes from a globally available “I” framerequire only a relatively small bandwidth. Once such a “P” frame istransmitted, a user can view only “N” frames until he makes his nextrequest. In a preferred embodiment of the invention, when a user splitsaway from a group he is assigned a new channel number. After the changeis transmitted to the user, the channel may start sending only “N”frames. Alternatively or additionally, the globally available channeltransmits only “N” frames, with a periodic “I” frame. Alternatively oradditionally, the user is switched to a standard channel which containsonly “N” frame. In a preferred embodiment of the invention, depending onbandwidth limitations, a user may be limited in functionality, forexample only to view WWW pages and/or follow links which have beenselected by other subscribers. Alternatively or additionally, the systemmay delay in providing a channel with individualized “P” frames, untilsuch a channel becomes available. In some cases, a user is presentedwith an hour-glass cursor, indicating that his request is queued.Alternatively or additionally, a message is displayed informing the userof the need to wait. Such a message may comprise “P” frames, for examplefrom a standard channel. Alternatively or additionally, a link, a buttonand/or a menu item may be grayed out. Alternatively or additionally, alimitation on scrolling resolution may be used to reduce the number ofrequired channels. Alternatively or additionally, the personalization ofadvertisements may be reduced.

Alternatively or additionally, to Internet channels, also TV channelscan benefit from such sub-channeling. In one example, sub-channels maybe used to provide advertising. Each locality may require a differentadvertisement program. In a preferred embodiment of the invention, thesame channel includes several sets of “P” frames, which may refer to asame spatial portion of a display, for example to encode multiplepossibilities for advertising for a same screen location. However, eachend user will utilize only non-overlapping sets.

In a preferred embodiment of the invention, the listing of whichchannels to read data packets from and which of the data packets arerelevant for a particular user, is provided in a data channel associatedwith one or more display channels. In a preferred embodiment of theinvention, a plurality of WWW channels and/or variations on a single WWWsite are provided in a single video channel, to reduce the need ofphysically switching between channels when reading video information.

In an alternative preferred embodiment of the invention, “P” and “I”frames can be computer files rather than compressed video information.In one example, an “I” file contains instructions on generating a basicdisplay. A plurality of “P” files contain instructions on modificationsof the display. An end user receives, for example on a data channel, alist of “I” and “P” to use to reconstruct a desired display channel. Inone example, the computer files include HTML file sections. In anotherexample, the files comprise display lists. In another example, the filesinclude commands and/or definitions for a display generating language.For example, an “I” file may include calls to subroutines, whichsubroutines are defined differently in each “P” file. One example of asuitable language is JAVA.

In a preferred embodiment of the invention, the computer at server 16 isa powerful computer which can perform real-time services not practicalat a home computer and/or requiring special software, for example speechrecognition. In one preferred embodiment of the invention, input devices20 comprises a microphone. A user provides voice commands to themicrophone, which are analyzed by a powerful and/or dedicated computerat server 16. The results of the command are displayed on a TV set atthe user, as described above.

It should be appreciated that by keeping expensive software at server16, and/or at a remote location which has a high speed connection toserver 16, the owner of the software can be better protected againstpirating of the software. The number of copies of the software issubstantially reduced. In addition, users who would not buy the softwarecan use it and pay royalties only for what they use, so anotherinducement to piracy is removed.

In a preferred embodiment of the invention, the above describedconfigurations are used for dissemination of copyrighted material. Inone aspect of this embodiment, each viewing/displaying/sounding of thematerial can be monitored and charged centrally by the cable operator,simplifying accounting processes. Additionally or alternatively, sincethe material is compressed before it is sent to the subscriber, itsquality is not digital-perfect. Thus, pirated copies are of an inferiorquality. Additionally or alternatively, each copy so transmitted can bemarked with an individual copy number, preferably in a hidden locationin the data. Thus, if the copyrighted material is copied, it is possibleto trace the source of the copy.

It should be appreciated that some of the embodiments described hereinmay also be performed using other types of client/server communications,besides compressed video, for example using data communications to aset-top box which renders displays based on the data.

In a preferred embodiment of the invention, the browser executed atserver 16 interacts with the compression process. In one example, server16 may indicate to the browser a desired compression and/or qualitylevel. Such an indication may cause the browser the perform displaymodifications, at the step of laying out of display elements.Alternatively or additionally, it may affect the type of graphicalprimitives generated by the browser. Alternatively or additionally, aconfiguration file, preferably read at start-up may define desiredmodifications in the browser output. Alternatively or additionally, thebrowser generates a special data output stream to server 16, in whichthe browser indicates display commands which may be superfluous or whichrequire a large computational expenditure for compression and/or whichincrease compression bandwidth. Alternatively or additionally, the WWWpage may include a plurality of display options for at least some of theobjects to be displayed. Thus, if a resolution reduction is required,the reduction may be pre-planned in the WWW page definition, rather thanimposed after the fact by the browser and/or server 16.

In a preferred embodiment of the invention, a WWW page designing programpreferably also includes an ability to take into account limitationsimposed by the compression and/or available bandwidth. In a preferredembodiment of the invention, an automatic WWW page generator, forexample, one associated with a WWW server, receives an indication ofcompression and/or bandwidth limitations and therefore generates a WWWpage which meets these limitations.

Referring back to FIG. 3, it is noted that different display elementsmay be processed differently, for example by being image processed indifferent ways, to aid in efficient and/or effective compression. FIG. 5is a more detailed flowchart 100 of a method of differentiallycompressing display elements, in accordance with a preferred embodimentof the invention.

First, a display element is provided (102). As explained with referenceto FIG. 3, the elements may be processed in various orders, for examplein a list order, by spatial location, or even in parallel. Possibly, thedisplay elements are first collated to blocks (which mayor may notcorrespond to the compression blocks and super-blocks) and then eachblock is processed separately, preferably either as a block or as acombination of the display elements therein. In an exemplary embodimentof the invention, the display elements comprises graphic commands whichare generated for the virtual display card, described above or as partof a display list. Typical display elements thus include text strings,line commands and “copy” commands.

Optionally, the MPEG II stream generator may map copy commands intomotion vectors. Alternatively or additionally, repeating sequences ofdisplay elements may be recognized. Such repeating sequences maycorrespond to similar appearing blocks on the display, which can, forexample, be encoded as a single block or encoded only once.Alternatively or additionally, sequences which repeat between images mayreflect motion, which may be encoded as motion vectors.

For each such display element (or image block or set of displayelements) relative and/or absolute display requirements are determined.Examples of relative display requirements are, a sharpness relative tothe background and higher internal contrast. Examples of absolutedisplay requirements are sharpness of lines (defined, for example as afunction of the high frequency quantization), contrast and number ofcolors. In addition, display requirements may include other displayparameters, such as a required update rate, required spatial resolutionand required spectral range. In a preferred embodiment of the invention,these display requirements are determined based on the type of displayelement. Alternatively or additionally, these requirements aredetermined based on the viewer. Alternatively or additionally, thesedisplay requirements are determined based on the display and/ordecompression hardware. Alternatively or additionally, these displayrequirements are determined based on the information being displayed(e.g., dynamic links are updated more often than static links, eventhough both are the same type of element) and/or on a displayconfiguration (such as it being an overlay).

In a particular example, the requirements may vary as a function of textsize, density of text and font. Alternatively or additionally, a set ofparticular text attributes may be selected to indicate to the compressorthat certain information is of special interest. Alternatively oradditionally, color may be used for such indication.

Once the display needs are determined, compression parameters can bechosen and/or modified to meet these needs (106). In some cases, thecompression parameters are determined absolutely. Alternatively oradditionally, relative values for compression parameters are determined,for later normalization or other setting of absolute values. Examples ofcompression parameters which can be chosen, include frame rate, errorlevel for block update, quantization table, motion sensitivity, changesensitivity, indication whether the block is to be compressed or not,indication whether the block is changed or not and/or motion vectors. Ina preferred embodiment of the invention, the compressed image has amodified resolution in at least one of the three main domains: temporal,spatial and color/intensity. Thus, different parts of the compressedimage can have different temporal, spatial or spectral characteristics.Possibly, a same compression block can have two differentcharacteristics for two display elements, for example if the block isformed by an overlay of two streams, each with different compressioncharacteristics.

It is noted that alternatively or additionally to choosing compressionparameters the display elements may be processed to affect their visualcharacteristics and/or compression efficiency.

In a particular example, when text is overlaid on an image background,the text and/or image blocks including texts are compressed to a lesserdegree so that higher spatial frequencies are not damaged too much. Ascan be appreciated, the exact compression parameters may depend not onlyon the importance of the text but also on physical “parameters thereof,such as length, font and scale.

In another example a background is compressed to a greater degree than aforeground. In still another example, horizontal lines are compressedmore than vertical lines. In yet another example, graphics arecompressed more than text and more than image portions.

In a preferred embodiment of the invention, macro-blocks which includetext, for example, are encoded with a finer quantizer. Possibly, afrequency dependent quantizer is provided and the relevant frequenciesfor the particular display elements are enhanced.

Alternatively or additionally, such macro-blocks are marked as includingimportant information so that they are less likely to be damaged by aprocess of statistical multiplexing, as bits will preferentially beremoved from other macro-blocks.

In a preferred embodiment of the invention where a catalog ofpre-transformed objects is provided, the catalog may include suchobjects compressed using different quantizer, such that a suitablecompressed object representation can be selected responsive to thedesired compression parameters.

One issue, which is preferably addressed, is maintaining a balancebetween the different image parts. In some cases, such a balance isignored, with any additional required bandwidth being provided by thedistribution system. In some cases, only particular, relatively rare,display elements or items require relative enhancement, so this policymay turn out to be more efficient in the long run. Alternatively whenone image part is enhanced, a different image part is degraded, tomaintain the same overall (average) bandwidth requirements. In apreferred embodiment of the invention, a nonnalization step (108)nonnalizes the compression parameters of the entire image (or imagesequence), so that the total bandwidth requirements meet a certain goal.Possibly, the trade off of image quality is between the quality of theparticular enhanced display elements and the quality of the rest of theimage. Alternatively or additionally, particular image parts may besingled out for degrading, while other blocks are not adverselyaffected. This is particularly useful when some parts of the image areknown be less important (such as window frames or a background portion).

In an exemplary implementation, a matrix is maintained of all the superblocks in the image. For each super block, a score is maintained toindicate its relative importance. Once the relative parameter settingsfor all blocks are determined, the parameters can be set so the imagecan be compressed to a given bandwidth and/or a given quality, usingmethods known in the art, for example as described in U.S. Pat. No.5,214,507 and in PCT publication WO 99/28858, the disclosures of whichare incorporated herein by reference. In some embodiments of theinvention, a portion of the compressed image may be decompressed andthen analyzed to assess the actual quality of the video stream. Thisdetermined quality may be used as feedback, for example, for setting thecompression parameters or the display requirements.

In a preferred embodiment of the invention, blocks containing text (orother display elements) are preprocessed so that blocks with differentamounts of text will, after compression, have a same absolute orrelative quality of their text. Alternatively or additionally, a samequantizer is used for different blocks, based on the type of displayelement in the blocks.

It should be noted that the available bandwidth may vary over time. Inone preferred embodiment of the invention, the quantization parametersare set so that text and/or other important display elements remain at asubstantially constant quality. Alternatively, the background ismaintained at a same quality and the text and/or other important displayelements are enhanced responsive to the available bandwidth.Alternatively the quality of all display elements may vary. Possibly,“important objects” may be defined based on their spatial and/ortemporal characteristics, alternatively or additionally, to a specificmarking of certain objects and/of the object type. By temporalcharacteristics it is meant (a) the time at which the objects aredisplayed, for example relative to a user input, a system output or adifferent event; and (b) whether or not the object vary. Temporallyvarying objects may be implemented using display lists stored at thevirtual display card, with the object being recognized using a tag.

Once the compression parameters are set for the entire image it can becompressed and/or transcoded (110). It is noted that the quality of acompressed image can be reduced without decompressing it, for example bystatically removing bits, or more preferably, by selectively removingbits from frequency coefficients and/or blocks and/or complete blocks oflesser importance. As noted above, the image can be compressed as awhole, as blocks, or even on an element-by-element basis. In aparticular example, the display commands may comprises sections ofcompressed video or other multimedia which can be transcoded asdescribed above. If necessary, such multimedia may be transcoded to havea lower quality, for example as described in U.S. Pat. No. 5,408,274,U.S. Pat. No. 5,453,780, U.S. Pat. No. 5,708,732 and in an article, “AFrequency-Domain Video Transcoder for Dynamic Bit-Rate Reduction ofMPEG-2 Bit Streams,” by Mohammed Ghanbari and Pedro Assunyao, whichappeared in IEEE Transactions on Circuits and Systems for Videotechnology, December 1998, the disclosures of which are incorporatedherein by reference.

Alternatively or additionally to differential compression of videodisplay elements, audio (display) elements can also be differentiallycompressed. Alternatively, the audio elements are pre-processed so thatwhen compressed, they will differentially compress. One example wheresuch differential compression is useful is when generating a complexsound (as compared to simple beeps), in which cases better quality maybe required so that a user can understand and/or appreciate the sound.

In some embodiments of the invention, variations in audio compressionquality are achieved by starting a new audio stream with differentcompression parameters, when required. In a preferred embodiment of theinvention, the breaks between the streams are made in pauses or inconjunction with other auditory conditions where they will be lessnoticed. Alternatively or additionally, smoothing is applied, at thecompression, decompression and/or playback stages so that the breakswill be less noticeable.

The above description has focused on providing compressed multimediastreams using cable TV networks. However, in some cases, the presentinvention may be advantageously practiced using a different transportmedium. In one example, the multimedia streams are transmitted viasatellite channels. Alternatively or additionally, telephone lines areused, for example, regular telephone (POTS), ISDN, DSL and/or ADSL.Possibly, the service provider will provide the set top box.Alternatively or additionally, an existing set-top box may be used.Possibly, digital TVs and/or video recorders having a built in MPEG IIdecompressor may be used instead of a set-top box.

Alternatively or additionally, a computer network is used, for example aLAN or a WAN. Alternatively or additionally, the data is provided as acompressed multimedia stream over the Internet. Possibly, a decodingpersonal computer is provided, which connects to the Internet andpossibly generates an output stream for a TV set, preferably using avideo card.

Alternatively or additionally, compressed images and other multimediastreams are transmitted to a cellular phone, for example a telephonehaving a JPEG or an MPEG II decompressor. It will be appreciated thatthe above described methods of client-server communication and videocompression may be varied in many ways, including, changing the order ofsteps, which steps are performed on-line or off-line, such as tablepreparation, and the exact implementation used, which can includevarious hardware and software combinations. In addition, a multiplicityof various features has been described. It should be appreciated thatdifferent features may be combined in different ways. In particular, notall the features are necessary in every preferred embodiment of theinvention. For example, only some of the efficiency enhancing steps maybe used in a particular compression system. Software as described hereinis preferably provided on a computer readable media, such as a disketteor an optical disk. Alternatively or additionally, it may be stored on acomputer, for example in a main memory or on a hard disk, both of whichare also computer readable media. When used in the following claims, theterms “comprises”, “includes”, “have” and their conjugates mean“including but not limited to”.

It will be appreciated by a person skilled in the art that the presentinvention is not limited by what has thus far been described. Rather,the scope of the present invention is limited only by the followingclaims.

What is claimed:
 1. A method for transmitting graphics data streams froma server to a client device, the method comprising: generating aplurality of graphics data streams in response to a display commandreceived from the client device corresponding to a plurality ofmultimedia channels; determining a plurality of personalized contentportions for the plurality of multimedia channels based at least in parton a parameter associated with the server and a different parameterassociated with the client device, wherein the plurality of personalizedcontent portions for the plurality of multimedia channels arepersonalized for a particular user or a group of users; determining apresentation format for the personalized content portions based at leastin part on the parameter associated with the server and the differentparameter associated with the client device, the presentation formatindicative of insertion information for the personalized contentportions in the graphics data stream; and formatting the personalizedcontent portions according to the presentation format and transmittingto the client device the formatted personalized content portions and thegraphics data stream; wherein said determining the presentation formatand said formatting are performed in aggregate for the plurality ofpersonalized content portions.
 2. The method of claim 1 furthercomprising determining available resources coupled to the server andallocating the generating a graphics data stream and the determining theplurality of personalized content portions and the determining thepresentation format across the server and the available resources. 3.The method of claim 1 further comprising determining a compression rateand transmitting the formatted personalized content portions and thegraphics data stream to the client device based on the determinedcompression rate.
 4. The method of claim 3, wherein the compression rateis based on available resources of the server, resources of the clientdevice, available bandwidth of a network connecting the server and theclient device, the graphics stream, the determined plurality ofpersonalized content portions, the determined presentation format, and atargeted image quality.
 5. The method of claim 1, wherein thedetermining the plurality of personalized content portions furthercomprises retrieving the plurality of personalized content portions froma database coupled to the server.
 6. The method of claim 1, wherein thepresentation format comprises information for merging the determinedplurality of personalized content portions with the graphics datastream.
 7. The method of claim 6, wherein the merging comprisesformatting and inserting the plurality of personalized content portionsin an insertion location associated with the graphics data stream. 8.The method of claim 1, wherein the presentation format comprisesinformation for simultaneously displaying on the client device theplurality of personalized content portions with the graphics datastream.
 9. The method of claim 1, wherein the presentation formatcomprises information for in-sequence displaying on the client devicethe plurality of personalized content portions and the graphics datastream.
 10. The method of claim 1, wherein the parameter associated withthe server comprises one or more of available resources associated withthe server, a time duration to display the plurality of personalizedcontent portions, a display area for displaying the plurality ofpersonalized content portions, a targeted image quality, and availablebandwidth of a network connecting the server and the client device. 11.The method of claim 1, wherein the parameter associated with the clientdevice comprises one or more of a consideration of the display command,an activity of a user associated with the client device, an exposurerate of the user to the plurality of personalized content portions,demographic information associated with the user, a local geographicalconsideration associated with the user, and available resourcesassociated with the client device.
 12. The method of claim 1, whereinthe plurality of personalized content portions comprises at least astatic image, an animation, an audio, or a video, and wherein thegraphics data stream comprises an audio and video stream encoded basedon an audio and video compression standard.
 13. A system fortransmitting display images to a client computing device, comprising: aprocessor; and a memory communicatively coupled to the processor, thememory bearing processor instructions that, when executed by theprocessor, cause the system to at least: generate a plurality of screendisplays in response to receiving a display command from the clientcomputing device, the plurality of screen displays comprising graphicsdata associated with the received display command; determine a pluralityof display images based at least in part on a parameter associated withthe system and a different parameter associated with the clientcomputing device, the display images being unrepresentative of thereceived display command, wherein the display images are personalizedfor a particular user or a group of users; determine a presentationformat for a selected on of the display images based at least in part onthe parameter associated with the system and the different parameterassociated with the client computing device, the presentation formatindicative of insertion information for the selected display image inthe screen display; and update the screen display with the selecteddisplay image based at least in part on the presentation format; whereinthe plurality of screen displays are for a plurality of multimediachannels and the presentation formats can be determined and the screendisplay can be updated for any of the multimedia channels.
 14. Thesystem of claim 13, wherein the display image comprises one or more ofan advertisement, a screen display associated with another clientcomputing device coupled to the system, and media content.
 15. Thesystem of claim 13, wherein the determine a display image comprisesselecting an image from a repository of images, and wherein thepresentation format comprises a format for inserting the selected imagein an insertion location within the screen display.
 16. The system ofclaim 13, wherein the parameter associated with the system comprises atleast available resources associated with the system, an insertionlocation within the screen display, a targeted image quality, oravailable bandwidth of a network connecting the system and the clientcomputing device.
 17. The system of claim 13, wherein the parameterassociated with the client computing device comprises at least thegraphics data displayed within the display screen, an activity of a userassociated with the client computing device, an exposure rate of theuser to the display image, a time duration for exposing the user to thedisplay image, demographic information associated with the user, a localgeographical consideration associated with the user, or availableresources of the client computing device.
 18. A system comprising amemory having stored thereon instructions that when executed by one ormore processors of the system, cause the system to perform the steps of:sending a display command to a server and causing the server todetermine a plurality of images unrepresentative of the display commandbased at least in part on a parameter associated with the server and adifferent parameter associated with the one or more processors and apresentation format based at least in part on the parameter associatedwith the server and the different parameter associated with the one ormore processors, wherein the images are personalized for a particularuser or a group of users; and receiving from the server a plurality ofgraphics streams, the plurality of graphics streams comprising pluralityof images associated with the display command and the plurality ofimages unrepresentative of the display command and formatted based atleast in part on the presentation format, the presentation formatindicative of insertion information for the plurality of imagesunrepresentative of the display command in the graphics stream; whereinthe plurality of graphics streams are formatted in aggregate.
 19. Thesystem of claim 18, wherein the image unrepresentative of the displaycommand is inserted in the graphics stream based on presentation format.20. The system of claim 19, wherein the parameter associated with servercomprises one or more of available bandwidth of a network connecting theserver and the one or more processors, available resources coupled tothe server, a targeted image quality, a targeted compression rate, animage update rate, the image associated with the display command, andthe image unrepresentative of the display command.